package pe.gob.pj.sri.bean;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.beanutils.converters.IntegerArrayConverter;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Scope("session")
@Component("Ticket")
public class Ticket {
	private String idTicket;
	private String idSistema;
	private String idActaPase;
	private String descripcionCorta;
	private String descripcionLarga;
	private Timestamp fechaRegistro;
	private Timestamp fechaFin;
	private int tipo; // lo mismo  que tipoTicket pero en int
	private int criticidad;
	private int estado;
	private boolean tipoNull;
	private boolean criticidadNull;
	private boolean estadoNull;
	private boolean seleccionado;
	private String fecha;
	private String nombreSistema;
	private String criticidadTicket;
	private String tipoTicket;
	
	
	
	public String getNombreSistema() {
		return nombreSistema;
	}

	public void setNombreSistema(String nombreSistema) {
		this.nombreSistema = nombreSistema;
	}

	
	public boolean isSeleccionado() {
		return seleccionado;
	}

	public void setSeleccionado(boolean seleccionado) {
		this.seleccionado = seleccionado;
	}

	public String getFecha() {
		return fecha;
	}

	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	public String getCriticidadTicket() {
		return criticidadTicket;
	}

	public void setCriticidadTicket(String criticidadTicket) {
		this.criticidadTicket = criticidadTicket;
	}
	
	public boolean isTipoNull() {
		return tipoNull;
	}

	public void setTipoNull(boolean tipoNull) {
		this.tipoNull = tipoNull;
	}

	public boolean isCriticidadNull() {
		return criticidadNull;
	}

	public void setCriticidadNull(boolean criticidadNull) {
		this.criticidadNull = criticidadNull;
	}

	public boolean isEstadoNull() {
		return estadoNull;
	}

	public void setEstadoNull(boolean estadoNull) {
		this.estadoNull = estadoNull;
	}

	public String getTipoTicket() {
		return tipoTicket;
	}

	public void setTipoTicket(String tipoTicket) {
		this.tipoTicket = tipoTicket;
	}

	public Ticket(){
		tipoNull=true;
		criticidadNull=true;
		estadoNull=true;
		estado=10;
	}
	
	public String getIdTicket() {
		return idTicket;
	}
	public void setIdTicket(String idTicket) {
		this.idTicket = idTicket;
	}
	public String getIdSistema() {
		return idSistema;
	}
	public void setIdSistema(String idSistema) {
		this.idSistema = idSistema;
	}
	public String getIdActaPase() {
		return idActaPase;
	}
	public void setIdActaPase(String idActaPase) {
		this.idActaPase = idActaPase;
	}
	public String getDescripcionCorta() {
		return descripcionCorta;
	}
	public void setDescripcionCorta(String descripcionCorta) {
		this.descripcionCorta = descripcionCorta;
	}
	public String getDescripcionLarga() {
		return descripcionLarga;
	}
	public void setDescripcionLarga(String descripcionLarga) {
		this.descripcionLarga = descripcionLarga;
	}
	public Timestamp getFechaRegistro() {
		//return fechaRegistro;
		Calendar cal = Calendar.getInstance();
		DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
		return Timestamp.valueOf(dateFormat.format(cal.getTime()));
	}

	public void setFechaRegistro(Timestamp fechaRegistro) {
		//this.fechaRegistro = fechaRegistro;
		Calendar cal = Calendar.getInstance();
		DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
		this.fechaRegistro=Timestamp.valueOf(dateFormat.format(cal.getTime()));
	}

	public Timestamp getFechaFin() {
		return fechaFin;
	}

	public void setFechaFin(Timestamp fechaFin) {
		this.fechaFin = fechaFin;
	}

	public int getTipo() {
		/*if(tipoNull){
			return Integer.MIN_VALUE;
		}*/
		//System.out.println("El tipo ticket es: "+tipoTicket);
		if(tipoTicket.equals("Incidencia"))tipo=1;
		else if(tipoTicket.equals("Requerimiento"))tipo=2;
		return tipo;
	}
	public void setTipo(int tipo) {
		tipoNull=false;
		this.tipo = tipo;
	}
	public int getCriticidad() {
		/*if(criticidadNull){
			return Integer.MIN_VALUE;
		}*/
		criticidad=Integer.parseInt(criticidadTicket);
		
		return criticidad;
	}
	public void setCriticidad(int criticidad) {
		criticidadNull=false;
		this.criticidad = criticidad;
	}
	public int getEstado() {
		/*if(estadoNull){
			return Integer.MIN_VALUE;
		}*/
		return estado;
	}
	public void setEstado(int estado) {
		estadoNull=false;
		this.estado = estado;
	}

}
